﻿
namespace Kyoh.Lib.Excel
{
    /// <summary>グラデーションの色と位置を定義します。</summary>
    public class ColorStop : Component
    {
        private ColorStop(object obj, Component parent)
            : base(obj, parent)
        {
        }

        /// <summary>Excel COM オブジェクトで、新しいインスタンスを初期化します。</summary>
        /// <param name="obj">Excel COM オブジェクト</param>
        /// <param name="parent">親となる <see cref="Component"/> オブジェクト。</param>
        internal static ColorStop Create(object obj, Component parent)
        {
            return obj == null ? null : new ColorStop(obj, parent);
        }

        /// <summary>グラデーションの基調となる色を取得・設定します。</summary>
        public VbColor Color
        {
            get { return VbColor.FromInteger((int)(double)base.GetProperty("Color")); }
            set { base.SetProperty("Color", value.ToInteger()); }
        }

        /// <summary>グラデーションの開始位置を取得・設定します。</summary>
        public double Position
        {
            get { return (double)base.GetProperty("Position"); }
            set { base.SetProperty("Position", value); }
        }

        /// <summary>グラデーションの基調となるテーマ色を取得・設定します。</summary>
        public ThemeColor ThemeColor
        {
            get { return (ThemeColor)(int)base.GetProperty("ThemeColor"); }
            set { base.SetProperty("ThemeColor", (int)value); }
        }

        /// <summary>グラデーションの基調となる色の明度を取得・設定します。</summary>
        public float TintAndShade
        {
            get { return (float)base.GetProperty("TintAndShade"); }
            set { base.SetProperty("TintAndShade", value); }
        }

        /// <summary>このオブジェクトを削除します。</summary>
        public void Delete()
        {
            base.InvokeMethod("Delete");
        }

    }
}
